home *** CD-ROM | disk | FTP | other *** search
/ Deutsche Edition 1 / Deutsche Edition 1.iso / amok / amok_lha / amok77.lha / IFFlib / IFFlib.lha / Examples / Grabber.S < prev    next >
Text File  |  1992-06-14  |  2KB  |  67 lines

  1. **
  2. **    $Id: Grabber.S,v 21.1 92/06/02 18:09:22 chris Exp $
  3. **    $Revision: 21.1 $
  4. **
  5. **    $Filename: Examples/Grabber.S $
  6. **    $Authors: Christian Haller, CHW $
  7. **    $Release: 21.1 $
  8. **    $Date: 92/06/02 18:09:22 $
  9. **
  10. **    Example for low level Assembler hackers :-)
  11. **
  12. **    This program saves the contents of the first screen as an IFF file
  13. **    with filename 'RAM:grabber.pic'. The iff.library is required.
  14. **    If you use the DevPac assembler, type 'Genim2 Grabber' to assemble.
  15. **    For simplicity, this program uses hard coded constants. You may wish
  16. **    to use the appropriate standard header files instead.
  17. **
  18. **    THIS IS PD. NO WARRANTY. USE AT YOUR OWN RISK.
  19. **
  20.  
  21. Main:        move.l    4,a6            ; AbsExecBase
  22.         lea    IFFName(PC),a1        ; Library Name
  23.         moveq    #16,d0            ; Required library version
  24.         jsr    -552(a6)        ; OpenLibrary()
  25.         move.l    d0,a4            ; A4 : IFF Library Base
  26.         tst.l    d0            ; Did we get it ?
  27.         bne.s    IFFOpen            ; Yes --->
  28.         moveq    #20,d0            ; Return-code RETURN_FAIL
  29.         rts                ; Return to CLI
  30. IFFOpen:
  31.         lea    IntuiName(PC),a1    ; Intuition Library Name
  32.         jsr    -408(a6)        ; OldOpenLibrary()
  33.         move.l    d0,a5            ; A5 : IntuitionBase
  34.  
  35.         move.l    60(a5),a0        ; IntuitionBase->FirstScreen
  36.         move.l    88(a0),d6        ; Screen.BitMap
  37.  
  38.         move.l    48(a0),a1        ; struct Colormap
  39.         move.l    4(a1),d7        ; struct ColorTable
  40.         lea    44(a0),a1        ; sc_ViewPort
  41.         move.w    32(a1),d1        ; vp_Modes
  42.         moveq    #1,d0            ; Set cruncher-flag
  43.         btst    #11,d1            ; Hold And Modify ?
  44.         beq.s    NoHam            ; no --->
  45.         bset    #7,d0            ; Set HAM-Flag for IFF.lib
  46. NoHam:
  47.         move.l    a4,a6            ; IFFBase
  48.         lea    FileName(PC),a0        ; Name of file to save
  49.         move.l    d6,a1            ; Pointer to BitMap
  50.         move.l    d7,a2            ; Pointer to ColorMap
  51.         jsr    -66(a6)            ; SaveBitMap()
  52.  
  53.         move.l    4,a6            ; AbsExecBase
  54.         move.l    a4,a1            ; IFFBase
  55.         jsr    -414(a6)        ; CloseLibrary() (IMPORTANT!)
  56.  
  57.         move.l    a5,a1            ; IntuitionBase
  58.         jsr    -414(a6)        ; CloseLibrary()
  59.  
  60.         moveq    #0,d0            ; DOS return code
  61.         rts
  62.  
  63. IFFName:    dc.b    "iff.library",0
  64. IntuiName:    dc.b    "intuition.library",0
  65. FileName:    dc.b    "RAM:grabber.pic",0
  66.  
  67.